package controllers

import (
	"fmt"
	"log"

	"github.com/astaxie/beego"
)

type UploadController struct {
	beego.Controller
}

type DownloadController struct {
	beego.Controller
}

func (u *UploadController) ShowUpload() {
	u.TplName = "upload.html"
}

//文件上传
func (u *UploadController) HandleUpload() {
	log.Println("文件上传开始")
	f, h, err := u.GetFile("upload_file")
	if err != nil {
		fmt.Println("上传失败", err)
		return
	}
	defer f.Close()

	log.Println("文件名", h.Filename)
	// 生成时间戳，防止重名
	// timeUnix := time.Now().Unix()               // int64类型
	// time_str := strconv.FormatInt(timeUnix, 10) // 将int64转为字符串 convert：转换

	// 保存获取到的文件
	err = u.SaveToFile("upload_file", "static/file/"+h.Filename)
	if err != nil {
		u.Ctx.WriteString("上传失败")
	} else {
		u.Ctx.WriteString("上传成功")
	}
	// u.TplName = "index.tpl"
}

func (u *DownloadController) ShowDownload() {
	u.TplName = "download.html"
}
//文件下载
func (d *DownloadController) HandleDownload() {
	//第一个参数是文件的地址，第二个参数是下载显示的文件的名称
	log.Println("文件下载开始")
	file := d.Ctx.Input.Query("name")
	fmt.Println("filename:", file)
	d.Ctx.Output.Download("static/file/"+file, file)
	fmt.Println("文件下载结束")
}
